package tech.aistar.corejava.day04;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:java.lang.Math 数学的工具类
 *                大部分的JDK中内置的工具类都是在java.util.* - 工具包
 *
 *                一般工具类[工具方法]的作用就是被程序员调用 - 讲究便利
 *                大部分的工具类中的方法都是采用static关键字修饰的 - 类名.方法名([参数])
 * @date 2019/7/18 0018
 */
public class MathDemo {
    public static void main(String[] args) {
        //ctrl+shift+T - 查看JDK内置对象类型的原码
        //ctrl + o - 查看大纲视图

        //静态成员 - 类名.成员
        System.out.println(Math.PI);

        //求绝对数
        //static double abs(int n);
        double n = Math.abs(-10);
        System.out.println(n);

        //ctrl+点击abs方法
        System.out.println(Math.abs(-10.9));

        //求次方
        //static double pow(double m,double n);
        System.out.println((int)Math.pow(2,3));

        //求开根
        //static double sqrt(double m);
        System.out.println(Math.sqrt(9));//3.0

        //求随机数
        //static double random();//返回的是[0.0,1.0)之间的所有的随机的小数
        //Java中不存在绝对的随机 - "伪随机"

        double result = Math.random();
        System.out.println(result);

        //求出[1-100]之间的一个随机整数
        int x = (int) (Math.random()*100+1);
        System.out.println(x);

        //求出任意俩个数之间的随机整数
        //33-35之间

        //笔试题中 - 偏.
        //static double floor(double n);
        //返回结果必定是等于某个整小数
        //整小数是小于或者等于参数
        //最接近参数
        //向下取整
        System.out.println(Math.floor(3.5));//3.0
        System.out.println(Math.floor(3.0));//3.0
        System.out.println(Math.floor(-3.5));//-4.0

        //long static round(double n);//返回最接近参数的long
        System.out.println(Math.round(3.4));//3

        //(long)Math.floor(a + 0.5d)
        System.out.println(Math.round(3.5));//4
    }
}
